import java.util.Arrays;
import java.util.Scanner;



    class NGuessNumber {

        public static int[] numbers=new int[4];
        public static int[] guesslist=new int[4];
        public static int a_num = 0;
        public static int b_num = 0;

//        public static void main(String[] args) {
//
//            System.out.println("|----新猜数字游戏-----|");
//
//            while(true) {
//
//                System.out.println("|----输入1开始游戏----|");
//                System.out.println("|----输入0结束游戏----|\n");
//                Scanner playerinput = new Scanner(System.in);
//
//                switch (playerinput.nextInt()) {
//                    case 0:
//                        System.out.println("----已退出游戏----\n");
//                        System.exit(0);
//                        break;
//                    case 1:
//                        int cs = 0;
//                        int sy = 7;
//
//                        System.out.println("----已开始游戏(限制次数为7次)----\n");
//                        generateAnswer();
//                        while (true) {
//
//                            getPlayerInput();
//                            compareGuessAnswer();
//                            //isWin();
//                            if (isWin() == true) {
//                                System.out.println("玩家获胜\n");
//                                break;
//                            } else {
//                                cs++;
//                                sy--;
//                                if(cs==7){
//                                    System.out.println("7次到了，正确答案为"+Arrays.toString(numbers));
//                                    System.out.println("|----再来一局？------|");
//                                    break;
//                                }
//                                System.out.println("猜错了，在来一次！(还剩"+sy+"次)\n");
//                                //System.out.println("答案："+Arrays.toString(numbers));
//                            }
//                        }
//                        break;
//
//                    default:
//                        System.out.println("错误的输入字符，请输入0/1\n");
//                }
//            }
//        }


        public static int[] generateAnswer(){
            //随机生成4个0-9之间的不重复的整型数作为答案并返回的功能。
            int index = 0;

            while (true) {
                int random = (int)(Math.random() * 9 + 1);
                int j = 0;
                for ( ; j < numbers.length; j++) {
                    if(random == numbers[j]) {
                        break;
                    }
                }
                if(j == numbers.length ) {
                    numbers[index++] = random;
                }
                if (index == 4) {
                    break;
                }
            }
            //System.out.println("答案："+Arrays.toString(numbers));
            //System.out.println(Arrays.toString(numbers).length());
            //System.out.println(numbers.length);
            //System.out.println(numbers);
            return numbers;
        }
        public static int[] getPlayerInput(){
            //接收玩家输入的4个数字并返回。
            //for (int a = 0; a<4; a++){
            //   guesslist[a]=a;//默认值0123
            //}
            //System.out.println(Arrays.toString(guesslist));
            try {
                Scanner sca = new Scanner(System.in);

                for (int i = 0; i < 4; i++) {
                    System.out.println("请输入0-9之间的第" + (i+1) + "个数字：");

                    int pl = sca.nextInt();
                    //System.out.println(pl);
                    if (pl >= 10 || pl < 0) {
                        System.out.print("输入错误，");
                        i=i-1;
                    }else {
                        guesslist[i] = pl;
                        //System.out.println(guesslist[i]);
                    }
                }
            }catch (Exception e){
                System.out.println("输入错误");
            }

            System.out.println(Arrays.toString(guesslist)+"\n");
            return guesslist;
        }
        public static String compareGuessAnswer(){
            a_num = 0;
            b_num = 0;
            //比较玩家猜测和答案后返回提示信息。
            //numbers[] guesslist[]
            //A 存在且位置正确，B 存在且位置不正确 1A1B 1表示数量
            for (int i = 0; i < numbers.length; i++) {
                for (int l=0; l < numbers.length; l++){
                    if(i!=l){
                        if(numbers[i]==guesslist[l]){
                            b_num++;
                        }
                    }else{
                        if(numbers[i]==guesslist[l]){
                            a_num++;
                        }
                    }

                }
            }

            System.out.println(a_num+"A"+b_num+"B");
            System.out.println("A表示存在且位置正确的数字个数，B表示存在且位置不正确的数字个数！");
            System.out.println("如：1A2B,表示你猜测的四个数字有3个是对的，有一个位置对，两个位置不对。\n");

            return a_num+"A"+b_num+"B\n"+"A表示存在且位置正确的数字个数，B表示存在且位置不正确的数字个数！\n"+"如：1A2B,表示你猜测的四个数字有3个是对的，有一个位置对，两个位置不对。";
        }
        public static boolean isWin(){
            boolean flag = false;
            //根据提示信息中A的数量判断玩家是否获胜，如果获胜返回true，否则返回false。
            if(a_num==4){
                flag=true;
            }else {
                flag=false;
            }
            return flag;

        }


    }

    


